package com.ruoyi.business.goods.domain;

import java.math.BigDecimal;
import java.util.List;

import com.baomidou.mybatisplus.annotation.TableField;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.business.base.JoBaseEntity;
import lombok.Data;

import javax.validation.constraints.NotNull;

/**
 * 商品对象 jb_commodity
 *
 * @author ruoyi
 * @date 2024-10-11
 */
@Data
public class JbCommodity extends JoBaseEntity
{

    /**
     * 线下渠道价格
     */
    @TableField(exist = false)
    private List<JbCommodityOfflinePrice> offlinePrices;

    /**
     * 渠道类型 线上，线下，多选（数据字典）
     */
    @Excel(name = "渠道类型 线上，线下，多选", readConverterExp = "数=据字典")
    private String channelType;

    /**
     * 分类id
     */
    @Excel(name = "分类id")
    private Long classifyId;

    /**
     * 产品类型 正常品，试验品促销品
     */
    @Excel(name = "产品类型 正常品，试验品促销品")
    private String commodityType;

    /**
     * 商品编码可系统生成
     */
    @Excel(name = "商品编码可系统生成")
    private String commodityNumber;

    /**
     * 关联产品id（产品表id）
     */
    @Excel(name = "关联产品id", readConverterExp = "产=品表id")
    private Long productId;

    /**
     * 关联产品名称
     */
    @Excel(name = "关联产品名称")
    private String productName;

    /**
     * 关联规格ID TODO 废弃字段
     */
    @Excel(name = "关联规格ID")
    private Long specificationId;

    /**
     * 商品名称
     */
    @Excel(name = "商品名称")
    private String commodityName;

    /**
     * 商品ID
     */
    @Excel(name = "商品ID")
    private String commodityCode;

    /**
     * 是否公海0=正常1=部门公海2=公司公海
     */
    @Excel(name = "是否公海0=正常1=部门公海2=公司公海")
    private Long commodityPublic;

    /**
     * 最小单位
     */
    @Excel(name = "最小单位")
    private String minUnit;

    /**
     * 整件数量
     */
    @NotNull(message = "整件数量 不能为空")
    @Excel(name = "整件数量")
    private Long caseQuantity;

    /**
     * 单位含量
     */
    @NotNull(message = "单位含量 不能为空")
    @Excel(name = "单位含量")
    private BigDecimal unitContent;

    /**
     * 含量单位（数据字典）
     */
    @Excel(name = "含量单位", readConverterExp = "数=据字典")
    private String contentUnit;

    /**
     * 商品主图URL
     */
    @Excel(name = "商品主图URL")
    private String mainImageUrl;

    /**
     * 单价
     */
    @NotNull(message = "线上拆箱单价 不能为空")
    @Excel(name = "线上拆箱单价")
    private BigDecimal onlineUnitPrice;

    /**
     * 箱价
     */
    @NotNull(message = "整件单价 不能为空")
    @Excel(name = "整件单价")
    private BigDecimal caseUnitPrice;
    /**
     * 箱价折算单价
     */
    @Excel(name = "箱价折算单价")
    private BigDecimal boxConversionUnitPrice;

    /**
     * 吨价
     */
    @Excel(name = "吨价")
    private BigDecimal tonPrice;
    /**
     * 吨价折算单价
     */
    @Excel(name = "吨价折算单价")
    private BigDecimal tonConversionUnitPrice;

    /**
     * 提成
     */
    @Excel(name = "提成")
    private BigDecimal commission;

    /**
     * 是否是套餐
     */
    @Excel(name = "是否是套餐")
    private Boolean isPackage;

    /**
     * 备注
     */
    @Excel(name = "备注")
    private String remark;

    /**
     * 状态
     */
    @Excel(name = "状态")
    private String status;
}
